vsftpd 虚拟用户的演示

bingo 2020年11月11日 18次浏览

vsftpd 虚拟用户的演示

  • 创建一个与虚拟用户对应的本地用户,并且设置为不可登录

    useradd vuser -d /data/ftp -s /sbin/nologin
    
  • 创建虚拟用户的用户名密码,如创建vuser.temp文件,内容如下所示

    # /etc/vsftpd/vuser.temp
    u1
    123456
    u2
    1234567
    u3
    12345678
    

    由于vsftp使用的是pam工具进行用户信息的比对,所以需要将上面的vuser.temp经pam转化为pam可识别的db文件,使用db_load命令如下

    db_load -T -t hash -f /etc/vsftpd/vuser.temp /etc/vsftpd/vuser.db
    
    # 给这个文件600权限
    chmod 600 /etc/vsftpd/vuser.db
    

    接下来创建pam需要加载的配置文件,将前面步骤创建的信息进行关联

    # vi /etc/pam.d/vsftpd.vuser
    auth sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    account  sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    
  • 创建虚拟用户的权限,为了方便管理,创建一个新目录/etc/vsftpd/vuserconfig用于管理虚拟用户权限,如果我们为u1配置权限,创建文件u1,u1文件内容如下

    # /etc/vsftpd/vuserconfig/u1
    local_root=/data/ftp
    write_enable=YES
    anon_umask=022
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    download_enable=YES
    
  • 修改vsftpd服务的主配置文件

    # vi /etc/vsftpd/vsftpd.conf
    listen_ipv6=YES
    
    # 如果有 则打开注释,否则手动添加下面的信息
    guest_enable=YES
    guest_username=vuser
    allow_writeable_chroot=YES
    # 虚拟用户权限控制
    user_config_dir=/etc/vsftpd/vuserconfig
    
    # 修改原来pam_service_name=vsftpd
    pam_service_name=vsftpd.vuser
    # pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    
  • 测试,在/data/ftp 目录下创建测试文件,命令ftp localhost 在u1用户登录下,看是否可以查看对测试文件

    ftp localhost
    

    如果没有创建/etc/vsftpd/vuserconfig/u2, /etc/vsftpd/vuserconfig/u3,测试结果是可以登录成功,但文件夹为空

至此,vsftpd虚拟用户的服务已经配置完毕